EC2 Apache 실습 - 패키지 매니저 vs Docker 비교 (Ubuntu)

주의사항

1단계: 패키지 매니저를 통한 Apache 설치

#!/bin/bash
# Package manager Apache installation

echo "Starting Apache installation via package manager..."

sudo apt-get update -y
sudo apt-get install -y apache2
sudo systemctl start apache2
sudo systemctl enable apache2

echo "Apache installation complete!"
echo "Access URL: http://YOUR_EC2_PUBLIC_IP/"

2단계: 커스텀 index 페이지 만들기

#!/bin/bash
# Create custom index page

echo "<h1>Apache via Package Manager</h1>" | sudo tee /var/www/html/index.html
echo "<p>Port: 80</p>" | sudo tee -a /var/www/html/index.html

echo "Custom page created!"

3단계: Docker 설치

#!/bin/bash
# Docker installation

echo "Starting Docker installation..."

sudo apt-get update -y
sudo apt-get install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -a -G docker tbit

echo "Docker installation complete!"
echo "Re-login required (or run: newgrp docker)"

4단계: Docker Apache 컨테이너 실행

#!/bin/bash
# Run Docker Apache container

echo "Starting Docker Apache container..."

docker run -d -p 8080:80 --name my-apache httpd:2.4

echo "Docker Apache started!"
echo "Access URL: http://YOUR_EC2_PUBLIC_IP:8080/"

5단계: Docker 컨테이너 커스텀 페이지 만들기

#!/bin/bash
# Create custom page for Docker container

echo "<h1>Apache via Docker</h1>" > index.html
echo "<p>Port: 8080</p>" >> index.html

docker cp index.html my-apache:/usr/local/apache2/htdocs/
rm index.html

echo "Docker custom page created!"

6단계: 컨테이너 내부 접근 (exec 사용)

#!/bin/bash
# Container access and useful commands

echo "Container access method:"
echo "docker exec -it my-apache /bin/bash"
echo ""
echo "Useful commands:"
echo "docker ps                    # Check running containers"
echo "docker logs my-apache        # Check logs"
echo "docker stop my-apache        # Stop container"
echo "docker start my-apache       # Start container"
echo "docker restart my-apache     # Restart container"

최종 확인


전체 정리 (실습 완료 후)

#!/bin/bash
# Complete cleanup - Apache and Docker

echo "Starting complete cleanup..."

# Stop and remove all Docker containers
docker stop $(docker ps -aq) 2>/dev/null
docker rm $(docker ps -aq) 2>/dev/null
docker rmi $(docker images -q) 2>/dev/null
docker system prune -af

# Remove Docker completely
sudo systemctl stop docker
sudo apt-get remove -y docker.io docker-ce docker-ce-cli containerd.io
sudo apt-get autoremove -y
sudo rm -rf /var/lib/docker
sudo rm -rf /etc/docker

# Remove Apache2
sudo systemctl stop apache2
sudo apt-get remove --purge -y apache2
sudo apt-get autoremove -y
sudo rm -rf /var/www/html/*

echo "Complete cleanup finished!"
echo "System restored to original state."